/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControleAcademico.View;

/**
 *
 * @author arthur
 * @author renan
 * @author tais
 * @author vinicius
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        MenuAluno menuAluno = new MenuAluno();
        MenuAtividade menuAtividade = new MenuAtividade();
        MenuProfessor menuProfessor = new MenuProfessor();
        MenuDisciplina menuDisciplina = new MenuDisciplina();
        MenuTurma menuTurma = new MenuTurma();
        MenuHistoricoAtividades menuHistoricoAtividades = new MenuHistoricoAtividades();
        MenuHistoricoDisciplinas menuHistoricoDisciplinas = new MenuHistoricoDisciplinas();
        
        System.out.println("Deseja apagar os dados antigos?");
        String zerarDados = Console.readString();
        
        if(zerarDados.equals("s") || zerarDados.equals("S")) {
            menuAluno.criaListaVazia();
            menuAtividade.criaListaVazia();
            menuProfessor.criaListaVazia();
            menuDisciplina.criaListaVazia();
            menuTurma.criaListaVazia();
            menuHistoricoAtividades.criaListaVazia();
            menuHistoricoDisciplinas.criaListaVazia();
        } else {
            menuAluno.load();
            menuProfessor.load();
            menuDisciplina.load();
            menuTurma.load(menuProfessor,menuDisciplina);
            menuAtividade.load(menuProfessor,menuTurma);
            menuHistoricoAtividades.load(menuAluno, menuAtividade);
            menuHistoricoDisciplinas.load(menuAluno, menuDisciplina);
        }
        
        String sair;
        do {
        
        String tipoUsuario;
        do {
 
            System.out.println("Cadastros\n\nQue usuário você é?\n"
                    + "1 - Administrador\n"
                    + "2 - Professor\n\n"
                    + "0 - Sair\n");
            
            tipoUsuario = Console.readString();
            
            if(!(tipoUsuario.equals("1")) && !(tipoUsuario.equals("2"))
                    && !(tipoUsuario.equals("0"))) {
                
                System.out.println("Usuário inválido.\n");
            }
            else if(tipoUsuario.equals("0")) {
                System.exit(1);
            }
            
        }while(!(tipoUsuario.equals("1")) && !(tipoUsuario.equals("2")));
         
        String novo;
            do {

                String oQueCadastrar;

                switch (tipoUsuario){

                    case "1":
                        System.out.println("Qual operação gostaria de realizar?\n"
                                + "1 - Cadastro - Aluno\n"
                                + "2 - Cadastro - Professor\n"
                                + "3 - Cadastro - Disciplina\n"
                                + "4 - Cadastro - Turma\n"
                                + "5 - Adicionar Histórico de Disciplinas\n"
                                + "6 - Inserir alunos em turmas\n\n"
                                + "0 - Sair");

                        oQueCadastrar = Console.readString(); 

                        switch(oQueCadastrar) {
                            case "1":
                                menuAluno.registrarAluno(); 
                                menuAluno.salvar();
                                break;
                            case "2":
                                menuProfessor.registrarProfessor();
                                menuProfessor.salvar();
                                break;
                            case "3":
                                menuDisciplina.cadastrarDisciplina();
                                menuDisciplina.salvar();
                                break;
                            case "4":
                                menuTurma.criarTurma(menuDisciplina, menuProfessor);
                                menuTurma.salvar(menuProfessor);
                                break;
                            case "5":
                                menuHistoricoDisciplinas.registrarHistoricoDisciplinas(menuDisciplina, menuAluno);
                                menuHistoricoDisciplinas.salvar();
                                break;
                            case "6":
                                menuTurma.inserirAluno(menuAluno, menuTurma);
                                menuTurma.salvar(menuProfessor);
                                menuAluno.salvar();
                                break;
                            case "0":
                                break;
                            default:
                                System.out.println("Cadastro nao reconhecido.");
                        }
                        break;

                    case "2":

                        System.out.println("O que gostaria de cadastrar?\n"
                                + "1 - Atividade\n"
                                + "2 - Histórico de Atividade\n\n"
                                + "0 - Sair");
                        oQueCadastrar = Console.readString(); 

                        switch(oQueCadastrar) {
                            case "1":
                                menuAtividade.criarAtividade(menuTurma, menuProfessor);  
                                menuAtividade.salvar(menuTurma);
                                menuTurma.salvar(menuProfessor);
                                break;
                            case "2":
                                menuHistoricoAtividades.cadastrarHistorico(menuAluno, menuAtividade);
                                menuHistoricoAtividades.salvar();
                                break;
                            case "0":
                                break;
                            default:
                                System.out.println("Cadastro não reconhecido.");
                        }
                        break;
                    default:
                        System.out.println("Tipo de usuário não identificado");
                }
                System.out.println("Deseja fazer novos cadastros? (S/N)");   
                novo = Console.readString();

            }while(novo.equals("s") || novo.equals("S"));
            
            System.out.println("Opções:\n"
                    + "1 - Realizar novo login\n\n"
                    + "0 - Sair\n");
            sair = Console.readString();
            
        }while(!(sair.equals("0")));

        System.exit(1);  
        }
}
